When printing a document, the page to be printed is typically composed electronically using software like QuarkXpress, Framemaker, etc. Internally the page is stored in a vector based graphical representation by these composition tools. This representation is then usually converted to another representation called a page description language (PDL). Some composition tools generate the PDL directly. To print the page, the PDL representation is sent to the printer. Before display or printing, a raster image processor (RIP) converts the PDL representation of the page to a raster (bitmap) representation at the desired resolution.
This conversion process can usually be divided into two stages: interpretation and rendering. Interpretation reduces the original page description to a series of drawing primitives called the display list. Rendering converts these drawing primitives into a bitmap in the frame buffer.
At high resolutions, a significant amount of memory is required to store this bitmap image. As an example, an 8.5″ by 11″ or A4 size page at a resolution of 600 dots per inch (dpi), 8 bits/pixel and 4 color planes will require about 128 megabytes of frame buffer memory.
In order to reduce the memory requirement, the page may be divided into smaller portions or bands. The band size is determined by the available frame buffer memory. Each band is then converted to bitmap form and passed on to the exposure module of the printer to make space for the subsequent bands.
In a typical non-impact printer the exposure module has to be fed with bitmap data at regular intervals. Thus each band must be rendered in a predefined time. As rendering is computationally intensive and is influenced by the page content, such real-time rendering may not be possible for complex bands. In some cases real-time rendering may not be possible even though the bands are not complex. If the available memory is limited, there may not be sufficient room to store the original display list and other information required for rendering the page. If this is the case, each band must be pre-rendered, compressed and stored. After all the bands have been processed and compressed, they are decompressed in real time and fed to the exposure module.
One of the more common page description languages is the Postscript language from Adobe Systems, Inc. The Postscript language is a programming language designed to convey a description of virtually any desired page to a printer or display. Postscript page descriptions are programs that are executed by the Postscript interpreter. The Postscript programs are usually generated by application programs executing on other computers.
The rendering engine(s) usually generate the bitmap representation of the page to be printed in a device independent format with a pixel depth of 8 bits. Since the print engines have variable pixel depths depending on the quality required, the bitmap has to be processed to match the print engine's resolution, usually one, two or four bits.
Printers are usually binary devices, the output on the paper either has ink or it does not. In order to print a continuous tone image, a technique called screening is employed. In prior art, non-electronic printers a physical screen was employed to break up the picture into a plurality of small areas. Continuous tones were simulated by either controlling the size of a single ink dot within each screen opening, or by using a fine screen, and dedicating multiple openings to each visible dot. In the case of a 4 bit resolution printer, a 4×4 block was used, with the appropriate number of screen openings having ink to match the input binary value. With a 4×4 block, 16 gray scale values were possible. This process is also called dithering. In a fully electronic printer, the screening is done in software instead of using a mechanical screen.